<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // ================================================================================
    // 状态模式
    // 
    // var data = {
    //     one: function () {
    //         console.log('one');

    //     }, two: function () {
    //         console.log('two');

    //     }, three: function () {
    //         console.log('three');

    //     }, four: function () {
    //         console.log('four');

    //     }, default: function () {
    //         console.log('没有');


    //     }
    // }
    // // var type = 'asfdafa';
    // var type = 'one';
    // data[type] ? data[type]() : data['default']()

    // ---------------------------------------------------------------------------------
    // 开关灯状态模式
    // var light = {
    //     on() {
    //         console.log('开灯');
    //     }, off() {
    //         console.log('关灯');
    //     }, default() {
    //         console.log('关灯');
    //     }
    // }
    // // var type = 'ww';
    // var type = 'on'
    // return light[type] ? light[type]() : light['default']();




    // ---------------------------------------------------------------------------------
    // if...else...
    // function fn(arguments) {
    //     if (arguments === 'on') {
    //         console.log('开灯');
    //     } else if (arguments === 'off') {
    //         console.log('关灯');
    //     } else {
    //         console.log('关灯');
    //     }
    // }
    // fn('ww')
    // fn('on')



    // =============================================================================
    //策略模式：在调用的时候传参
    // var data = {
    //     one: function (discount) {
    //         console.log(`打${discount}折`);

    //     }, two: function (money) {
    //         console.log(`优惠${money}元`);

    //     }, three: function () {
    //         console.log(`返利${discount}元`);

    //     }, default: function () {
    //         console.log('没有优惠');


    //     }
    // }
    // var type1 = 'one';
    // data[type1] ? data[type1](8) : data['default']()
    // var type2 = 'two';
    // data[type2] ? data[type2](8) : data['default']()
    // var type2 = '123';
    // data[type2] ? data[type2]() : data['default']()


    // =============================================================================
    // 观察者模式
    


</script>

</html>